
import com.sun.java.swing.plaf.motif.MotifButtonListener;
import java.awt.CardLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import java.util.regex.*;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * MainGUI.java
 *
 * Created on Mar 18, 2010, 6:30:48 PM
 */
/**
 *
 * @author Kohli
 */
public class MainGUI extends javax.swing.JFrame {

    String flightInfo;

    /** Creates new form MainGUI */
    public MainGUI()
    {
        initComponents();
        initializeButtons();
        initializeKeyListener();
        initializeTables();
    }

    private void initializeTables(){
        departingFlightTable.getColumnModel().getColumn(0).setCellRenderer(new TextAreaRenderer());
        returningFlightTable.getColumnModel().getColumn(0).setCellRenderer(new TextAreaRenderer());
    }

    private void initializeKeyListener()
    {
   //  departingFlightTable.addMouse
        departingAirportTextBox.addKeyListener(new KeyListener()
        {
            public void keyTyped(KeyEvent e) {
            }
            public void keyPressed(KeyEvent e) {
            }
            public void keyReleased(KeyEvent e) {
                checkIfSearchCanBeEnabled();
            }
        });

        arrivalAirportTextBox.addKeyListener(new KeyListener()
        {
            public void keyTyped(KeyEvent e) {
            }
            public void keyPressed(KeyEvent e) {
            }
            public void keyReleased(KeyEvent e) {
                checkIfSearchCanBeEnabled();
            }
        });

        departureDateTextBox.addKeyListener(new KeyListener()
        {
            public void keyTyped(KeyEvent e) {
            }
            public void keyPressed(KeyEvent e) {
            }
            public void keyReleased(KeyEvent e) {
                checkIfSearchCanBeEnabled();
            }
        });


        returnDateTextBox.addKeyListener(new KeyListener()
        {
            public void keyTyped(KeyEvent e) {
            }
            public void keyPressed(KeyEvent e) {
            }
            public void keyReleased(KeyEvent e) {
                checkIfSearchCanBeEnabled();
            }
        });
        
        noOfPassengersTextBox.addKeyListener(new KeyListener() {
            public void keyTyped(KeyEvent e) {
            }
            public void keyPressed(KeyEvent e) {
            }
            public void keyReleased(KeyEvent e) {
                checkIfSearchCanBeEnabled();
            }
        });

        oneWayRadioButton.addMouseListener(new MouseListener() {
            public void mouseClicked(MouseEvent e) {
                checkIfSearchCanBeEnabled();
            }
            public void mousePressed(MouseEvent e) {
            }
            public void mouseReleased(MouseEvent e) {
            }
            public void mouseEntered(MouseEvent e) {
            }
            public void mouseExited(MouseEvent e) {
            }
        });

        roundTripRadioButton.addMouseListener(new MouseListener() {
            public void mouseClicked(MouseEvent e) {
                checkIfSearchCanBeEnabled();
            }
            public void mousePressed(MouseEvent e) {
            }
            public void mouseReleased(MouseEvent e) {
            }
            public void mouseEntered(MouseEvent e) {
            }
            public void mouseExited(MouseEvent e) {
            }
        });
    }

    private void initializeButtons() {
        searchButton.setEnabled(false);
        roundTripRadioButton.setSelected(true);
    }

    private void checkIfSearchCanBeEnabled()
    {
        if (!departingAirportTextBox.getText().equals(""))
        {
            searchButton.setEnabled(false);
            if (!arrivalAirportTextBox.getText().equals(""))
            {
                searchButton.setEnabled(false);
                if (!departureDateTextBox.getText().equals(""))
                {
                    searchButton.setEnabled(false);
                    if (roundTripRadioButton.isSelected() && !returnDateTextBox.getText().equals(""))
                    {
                        searchButton.setEnabled(false);
                        if (!noOfPassengersTextBox.getText().equals(""))
                        {
                            searchButton.setEnabled(true);
                        }
                    }
                    else if (oneWayRadioButton.isSelected())
                    {
                        searchButton.setEnabled(false);
                        if (!noOfPassengersTextBox.getText().equals(""))
                        {
                            searchButton.setEnabled(true);
                        }
                    }
                }
            }
        }
    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        mainPanel = new javax.swing.JPanel();
        screen1 = new javax.swing.JPanel();
        screen1Tab = new javax.swing.JTabbedPane();
        flightInformationPanel = new javax.swing.JPanel();
        jLabel4 = new javax.swing.JLabel();
        departingAirportTextBox = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        airportLookupButton1 = new javax.swing.JButton();
        arrivalAirportTextBox = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        departureDateTextBox = new javax.swing.JTextField();
        returnDateTextBox = new javax.swing.JTextField();
        numberOfPassengersTextBox = new javax.swing.JLabel();
        noOfPassengersTextBox = new javax.swing.JTextField();
        searchButton = new javax.swing.JButton();
        clearButton = new javax.swing.JButton();
        airportLookupButton2 = new javax.swing.JButton();
        calendarLookupButton1 = new javax.swing.JButton();
        calendarLookupButton2 = new javax.swing.JButton();
        oneWayRadioButton = new javax.swing.JRadioButton();
        roundTripRadioButton = new javax.swing.JRadioButton();
        jLabel29 = new javax.swing.JLabel();
        jLabel30 = new javax.swing.JLabel();
        screen2 = new javax.swing.JPanel();
        jComboBox1 = new javax.swing.JComboBox();
        jSeparator1 = new javax.swing.JSeparator();
        jLabel9 = new javax.swing.JLabel();
        selectDepartingFlightButton = new javax.swing.JButton();
        jScrollPane3 = new javax.swing.JScrollPane();
        departingFlightTable = new javax.swing.JTable();
        departingFlightBackButton = new javax.swing.JButton();
        screen3 = new javax.swing.JPanel();
        jLabel10 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        flightReviewBox = new javax.swing.JTextArea();
        jButton8 = new javax.swing.JButton();
        jButton9 = new javax.swing.JButton();
        screen4 = new javax.swing.JPanel();
        jLabel11 = new javax.swing.JLabel();
        jSeparator2 = new javax.swing.JSeparator();
        paymentInfoContinueButton = new javax.swing.JButton();
        jButton11 = new javax.swing.JButton();
        jLabel12 = new javax.swing.JLabel();
        paymentTypeComboBox = new javax.swing.JComboBox();
        jLabel13 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        jLabel15 = new javax.swing.JLabel();
        jLabel16 = new javax.swing.JLabel();
        jLabel17 = new javax.swing.JLabel();
        jLabel26 = new javax.swing.JLabel();
        CardNumberTextBox = new javax.swing.JTextField();
        expirationDateTextBox = new javax.swing.JTextField();
        securityCodeTextBox = new javax.swing.JTextField();
        routingNumberTextBox = new javax.swing.JTextField();
        bankAccountTextBox = new javax.swing.JTextField();
        payPalAccountTextBox = new javax.swing.JTextField();
        jLabel27 = new javax.swing.JLabel();
        payPalPasswordTextBox = new javax.swing.JTextField();
        LastNameTextBox = new javax.swing.JTextField();
        jLabel31 = new javax.swing.JLabel();
        cardTypeTextBox = new javax.swing.JTextField();
        firstnameTextBox = new javax.swing.JTextField();
        jLabel32 = new javax.swing.JLabel();
        jLabel33 = new javax.swing.JLabel();
        screen5 = new javax.swing.JPanel();
        jLabel18 = new javax.swing.JLabel();
        jScrollPane2 = new javax.swing.JScrollPane();
        personalInfoReviewBox = new javax.swing.JTextArea();
        jLabel19 = new javax.swing.JLabel();
        jButton12 = new javax.swing.JButton();
        jButton13 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        newAccountScreen = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel20 = new javax.swing.JLabel();
        jLabel22 = new javax.swing.JLabel();
        jLabel23 = new javax.swing.JLabel();
        jLabel24 = new javax.swing.JLabel();
        jSeparator3 = new javax.swing.JSeparator();
        jLabel25 = new javax.swing.JLabel();
        firstNameTextBox = new javax.swing.JTextField();
        lastNameTextBox = new javax.swing.JTextField();
        emailAddressTextBox = new javax.swing.JTextField();
        streetAddressTextBox = new javax.swing.JTextField();
        stateTextBox = new javax.swing.JTextField();
        cancelCreateAccountButton = new javax.swing.JButton();
        createAccountButton = new javax.swing.JButton();
        jLabel21 = new javax.swing.JLabel();
        jLabel40 = new javax.swing.JLabel();
        cityTextBox = new javax.swing.JTextField();
        countryTextBox = new javax.swing.JTextField();
        jLabel41 = new javax.swing.JLabel();
        zipCodeTextBox = new javax.swing.JTextField();
        jLabel42 = new javax.swing.JLabel();
        phoneTextBox = new javax.swing.JTextField();
        jLabel8 = new javax.swing.JLabel();
        jLabel43 = new javax.swing.JLabel();
        jLabel44 = new javax.swing.JLabel();
        jLabel45 = new javax.swing.JLabel();
        jLabel48 = new javax.swing.JLabel();
        jLabel49 = new javax.swing.JLabel();
        jLabel50 = new javax.swing.JLabel();
        jLabel51 = new javax.swing.JLabel();
        passwordTextBox = new javax.swing.JPasswordField();
        returningFlights = new javax.swing.JPanel();
        jSeparator4 = new javax.swing.JSeparator();
        jComboBox2 = new javax.swing.JComboBox();
        jLabel46 = new javax.swing.JLabel();
        selectReturnFlightButton = new javax.swing.JButton();
        jScrollPane4 = new javax.swing.JScrollPane();
        returningFlightTable = new javax.swing.JTable();
        returningFlightBackButton = new javax.swing.JButton();
        loginScreen = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        jLabel36 = new javax.swing.JLabel();
        jLabel37 = new javax.swing.JLabel();
        loginUserNameTextBox = new javax.swing.JTextField();
        jLabel38 = new javax.swing.JLabel();
        loginPasswordTextBox = new javax.swing.JPasswordField();
        jButton1 = new javax.swing.JButton();
        jLabel39 = new javax.swing.JLabel();
        jLabel28 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Airline Booking System");
        setName("mainFrame"); // NOI18N

        mainPanel.setLayout(new java.awt.CardLayout());

        screen1.setPreferredSize(new java.awt.Dimension(901, 800));

        jLabel4.setFont(new java.awt.Font("Tahoma", 0, 14));
        jLabel4.setText("Source (From):");

        departingAirportTextBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                departingAirportTextBoxActionPerformed(evt);
            }
        });

        jLabel5.setFont(new java.awt.Font("Tahoma", 0, 14));
        jLabel5.setText("Destination (To):");

        airportLookupButton1.setText("Airport Lookup");
        airportLookupButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                airportLookupButton1ActionPerformed(evt);
            }
        });

        jLabel6.setFont(new java.awt.Font("Tahoma", 0, 14));
        jLabel6.setText("Departing On:");

        jLabel7.setFont(new java.awt.Font("Tahoma", 0, 14));
        jLabel7.setText("Returning On:");

        departureDateTextBox.setText("yyyy-mm-dd");

        returnDateTextBox.setText("yyyy-mm-dd");

        numberOfPassengersTextBox.setFont(new java.awt.Font("Tahoma", 0, 14));
        numberOfPassengersTextBox.setText("Number of Passengers:");

        noOfPassengersTextBox.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                noOfPassengersTextBoxKeyReleased(evt);
            }
        });

        searchButton.setText("Search");
        searchButton.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                searchButtonMouseClicked(evt);
            }
        });
        searchButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                searchButtonActionPerformed(evt);
            }
        });

        clearButton.setText("Clear");
        clearButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                clearButtonActionPerformed(evt);
            }
        });

        airportLookupButton2.setText("Airport Lookup");
        airportLookupButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                airportLookupButton2ActionPerformed(evt);
            }
        });

        calendarLookupButton1.setText("Calendar Lookup");
        calendarLookupButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                calendarLookupButton1ActionPerformed(evt);
            }
        });

        calendarLookupButton2.setText("Calendar Lookup");
        calendarLookupButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                calendarLookupButton2ActionPerformed(evt);
            }
        });

        oneWayRadioButton.setText("One Way");
        oneWayRadioButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                oneWayRadioButtonActionPerformed(evt);
            }
        });

        roundTripRadioButton.setText("Round Trip");
        roundTripRadioButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                roundTripRadioButtonActionPerformed(evt);
            }
        });

        jLabel29.setFont(new java.awt.Font("Tahoma", 1, 18));
        jLabel29.setForeground(new java.awt.Color(255, 0, 51));
        jLabel29.setText("Your Source For The Cheapest Flights In Town");

        jLabel30.setFont(new java.awt.Font("Tahoma", 1, 24));
        jLabel30.setText("ABS AIRLINES");

        javax.swing.GroupLayout flightInformationPanelLayout = new javax.swing.GroupLayout(flightInformationPanel);
        flightInformationPanel.setLayout(flightInformationPanelLayout);
        flightInformationPanelLayout.setHorizontalGroup(
            flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(flightInformationPanelLayout.createSequentialGroup()
                .addGap(92, 92, 92)
                .addGroup(flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(numberOfPassengersTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(22, 22, 22)
                .addGroup(flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(flightInformationPanelLayout.createSequentialGroup()
                        .addComponent(oneWayRadioButton)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 209, Short.MAX_VALUE)
                        .addComponent(roundTripRadioButton))
                    .addGroup(flightInformationPanelLayout.createSequentialGroup()
                        .addComponent(searchButton, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(121, 121, 121)
                        .addComponent(clearButton, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE))
                    .addComponent(noOfPassengersTextBox, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE)
                    .addComponent(returnDateTextBox, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE)
                    .addComponent(departureDateTextBox, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE)
                    .addComponent(arrivalAirportTextBox, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE)
                    .addComponent(departingAirportTextBox, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 15, Short.MAX_VALUE)
                .addGroup(flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(calendarLookupButton1)
                    .addGroup(flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                        .addComponent(airportLookupButton2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(airportLookupButton1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 112, Short.MAX_VALUE))
                    .addComponent(calendarLookupButton2))
                .addGap(107, 107, 107))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, flightInformationPanelLayout.createSequentialGroup()
                .addContainerGap(237, Short.MAX_VALUE)
                .addComponent(jLabel29)
                .addGap(202, 202, 202))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, flightInformationPanelLayout.createSequentialGroup()
                .addContainerGap(362, Short.MAX_VALUE)
                .addComponent(jLabel30)
                .addGap(321, 321, 321))
        );
        flightInformationPanelLayout.setVerticalGroup(
            flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(flightInformationPanelLayout.createSequentialGroup()
                .addGap(74, 74, 74)
                .addComponent(jLabel30)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel29)
                .addGap(63, 63, 63)
                .addGroup(flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(oneWayRadioButton)
                    .addComponent(roundTripRadioButton))
                .addGap(52, 52, 52)
                .addGroup(flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(departingAirportTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4)
                    .addComponent(airportLookupButton1))
                .addGap(33, 33, 33)
                .addGroup(flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(arrivalAirportTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel5)
                    .addComponent(airportLookupButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(30, 30, 30)
                .addGroup(flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(departureDateTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(calendarLookupButton1))
                .addGap(29, 29, 29)
                .addGroup(flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(calendarLookupButton2)
                    .addComponent(returnDateTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(30, 30, 30)
                .addGroup(flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(numberOfPassengersTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(noOfPassengersTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(40, 40, 40)
                .addGroup(flightInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(searchButton)
                    .addComponent(clearButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(1773, 1773, 1773))
        );

        screen1Tab.addTab("Flight Information", flightInformationPanel);

        javax.swing.GroupLayout screen1Layout = new javax.swing.GroupLayout(screen1);
        screen1.setLayout(screen1Layout);
        screen1Layout.setHorizontalGroup(
            screen1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(screen1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(screen1Tab, javax.swing.GroupLayout.PREFERRED_SIZE, 862, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(29, Short.MAX_VALUE))
        );
        screen1Layout.setVerticalGroup(
            screen1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(screen1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(screen1Tab, javax.swing.GroupLayout.DEFAULT_SIZE, 778, Short.MAX_VALUE)
                .addContainerGap())
        );

        mainPanel.add(screen1, "screen1");

        screen2.setPreferredSize(new java.awt.Dimension(882, 800));

        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Price", "Number of Layovers", "Total Time", "Class of Travel" }));
        jComboBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBox1ActionPerformed(evt);
            }
        });

        jLabel9.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel9.setText("Sort by:");

        selectDepartingFlightButton.setLabel("Select");
        selectDepartingFlightButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                selectDepartingFlightButtonActionPerformed(evt);
            }
        });

        departingFlightTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Departing Flights"
            }
        ));
        departingFlightTable.setRowHeight(75);
        departingFlightTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                departingFlightTableMouseClicked(evt);
            }
        });
        jScrollPane3.setViewportView(departingFlightTable);

        departingFlightBackButton.setText("Back");
        departingFlightBackButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                departingFlightBackButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout screen2Layout = new javax.swing.GroupLayout(screen2);
        screen2.setLayout(screen2Layout);
        screen2Layout.setHorizontalGroup(
            screen2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(screen2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(screen2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, screen2Layout.createSequentialGroup()
                        .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 481, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(173, 173, 173))
                    .addGroup(screen2Layout.createSequentialGroup()
                        .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 862, Short.MAX_VALUE)
                        .addContainerGap())))
            .addGroup(screen2Layout.createSequentialGroup()
                .addGap(104, 104, 104)
                .addGroup(screen2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(screen2Layout.createSequentialGroup()
                        .addComponent(departingFlightBackButton, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(57, 57, 57)
                        .addComponent(selectDepartingFlightButton, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 635, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(143, Short.MAX_VALUE))
        );
        screen2Layout.setVerticalGroup(
            screen2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(screen2Layout.createSequentialGroup()
                .addGap(20, 20, 20)
                .addGroup(screen2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(26, 26, 26)
                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 13, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 516, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(40, 40, 40)
                .addGroup(screen2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(selectDepartingFlightButton)
                    .addComponent(departingFlightBackButton))
                .addContainerGap(105, Short.MAX_VALUE))
        );

        mainPanel.add(screen2, "screen2");

        screen3.setPreferredSize(new java.awt.Dimension(882, 800));

        jLabel10.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel10.setText("Review and Confirm Selected Flight Information:");

        flightReviewBox.setColumns(20);
        flightReviewBox.setRows(5);
        jScrollPane1.setViewportView(flightReviewBox);

        jButton8.setLabel("Back");
        jButton8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton8ActionPerformed(evt);
            }
        });

        jButton9.setLabel("Confirm");
        jButton9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton9ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout screen3Layout = new javax.swing.GroupLayout(screen3);
        screen3.setLayout(screen3Layout);
        screen3Layout.setHorizontalGroup(
            screen3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(screen3Layout.createSequentialGroup()
                .addGroup(screen3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(screen3Layout.createSequentialGroup()
                        .addGap(65, 65, 65)
                        .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 525, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(screen3Layout.createSequentialGroup()
                        .addGap(54, 54, 54)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 725, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(103, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, screen3Layout.createSequentialGroup()
                .addContainerGap(239, Short.MAX_VALUE)
                .addComponent(jButton8, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(163, 163, 163)
                .addComponent(jButton9, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(276, 276, 276))
        );

        screen3Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jButton8, jButton9});

        screen3Layout.setVerticalGroup(
            screen3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(screen3Layout.createSequentialGroup()
                .addGap(30, 30, 30)
                .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(44, 44, 44)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 366, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(62, 62, 62)
                .addGroup(screen3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton8, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton9))
                .addContainerGap(207, Short.MAX_VALUE))
        );

        screen3Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jButton8, jButton9});

        mainPanel.add(screen3, "screen3");

        screen4.setPreferredSize(new java.awt.Dimension(901, 800));
        screen4.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jLabel11.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel11.setText("Enter Payment Information:");
        screen4.add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(51, 29, 310, 58));
        screen4.add(jSeparator2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 90, 852, 10));

        paymentInfoContinueButton.setText("Continue");
        paymentInfoContinueButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                paymentInfoContinueButtonActionPerformed(evt);
            }
        });
        screen4.add(paymentInfoContinueButton, new org.netbeans.lib.awtextra.AbsoluteConstraints(630, 630, 109, 33));

        jButton11.setText("Back");
        screen4.add(jButton11, new org.netbeans.lib.awtextra.AbsoluteConstraints(270, 630, 106, 31));

        jLabel12.setText("Card Number:");
        screen4.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 310, -1, -1));

        paymentTypeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Please Select:", "Credit/Debit Card", "E-Check", "PayPal" }));
        paymentTypeComboBox.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                paymentTypeComboBoxMouseClicked(evt);
            }
        });
        paymentTypeComboBox.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                paymentTypeComboBoxItemStateChanged(evt);
            }
        });
        paymentTypeComboBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                paymentTypeComboBoxActionPerformed(evt);
            }
        });
        screen4.add(paymentTypeComboBox, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 128, 550, 30));

        jLabel13.setText("Payment Type:");
        screen4.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 140, -1, -1));

        jLabel14.setText("Secutiry Code:");
        screen4.add(jLabel14, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 390, -1, -1));

        jLabel15.setText("Expiration Date:");
        screen4.add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 350, -1, -1));

        jLabel16.setText("Routing Number:");
        screen4.add(jLabel16, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 430, -1, -1));

        jLabel17.setText("PayPal Account:");
        screen4.add(jLabel17, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 510, -1, -1));

        jLabel26.setText("PayPal Account Password:");
        screen4.add(jLabel26, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 550, -1, -1));

        CardNumberTextBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                CardNumberTextBoxActionPerformed(evt);
            }
        });
        screen4.add(CardNumberTextBox, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 310, 554, -1));
        screen4.add(expirationDateTextBox, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 350, 554, -1));

        securityCodeTextBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                securityCodeTextBoxActionPerformed(evt);
            }
        });
        screen4.add(securityCodeTextBox, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 390, 554, -1));
        screen4.add(routingNumberTextBox, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 430, 554, -1));
        screen4.add(bankAccountTextBox, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 470, 554, -1));

        payPalAccountTextBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                payPalAccountTextBoxActionPerformed(evt);
            }
        });
        screen4.add(payPalAccountTextBox, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 510, 554, 20));

        jLabel27.setText("Bank Account Number:");
        screen4.add(jLabel27, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 470, -1, -1));
        screen4.add(payPalPasswordTextBox, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 550, 550, -1));

        LastNameTextBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                LastNameTextBoxActionPerformed(evt);
            }
        });
        screen4.add(LastNameTextBox, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 230, 554, -1));

        jLabel31.setText("Payee's Last Name:");
        screen4.add(jLabel31, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 230, -1, -1));

        cardTypeTextBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cardTypeTextBoxActionPerformed(evt);
            }
        });
        screen4.add(cardTypeTextBox, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 270, 554, -1));

        firstnameTextBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                firstnameTextBoxActionPerformed(evt);
            }
        });
        screen4.add(firstnameTextBox, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 190, 554, -1));

        jLabel32.setText("Credit Card Type:");
        screen4.add(jLabel32, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 270, -1, -1));

        jLabel33.setText("Payee's First Name:");
        screen4.add(jLabel33, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 190, -1, 20));

        mainPanel.add(screen4, "screen4");

        screen5.setPreferredSize(new java.awt.Dimension(882, 800));

        jLabel18.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel18.setText("Review Personal and Payment Information:");

        personalInfoReviewBox.setColumns(20);
        personalInfoReviewBox.setRows(5);
        jScrollPane2.setViewportView(personalInfoReviewBox);

        jLabel19.setFont(new java.awt.Font("Tahoma", 0, 14));
        jLabel19.setText("Make sure the above information is correct, and then click \"Confirm\" to book your flight. Click 'Back' to go back and make ");

        jButton12.setText("Confirm");
        jButton12.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton12ActionPerformed(evt);
            }
        });

        jButton13.setText("Back");
        jButton13.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton13ActionPerformed(evt);
            }
        });

        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 14));
        jLabel1.setText("any changes.");

        javax.swing.GroupLayout screen5Layout = new javax.swing.GroupLayout(screen5);
        screen5.setLayout(screen5Layout);
        screen5Layout.setHorizontalGroup(
            screen5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(screen5Layout.createSequentialGroup()
                .addGroup(screen5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(screen5Layout.createSequentialGroup()
                        .addGap(49, 49, 49)
                        .addGroup(screen5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel18, javax.swing.GroupLayout.DEFAULT_SIZE, 842, Short.MAX_VALUE)
                            .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 772, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel19, javax.swing.GroupLayout.PREFERRED_SIZE, 842, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel1)))
                    .addGroup(screen5Layout.createSequentialGroup()
                        .addGap(260, 260, 260)
                        .addComponent(jButton13, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(184, 184, 184)
                        .addComponent(jButton12, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        screen5Layout.setVerticalGroup(
            screen5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(screen5Layout.createSequentialGroup()
                .addGap(49, 49, 49)
                .addComponent(jLabel18, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 341, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(37, 37, 37)
                .addComponent(jLabel19, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel1)
                .addGap(52, 52, 52)
                .addGroup(screen5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton13, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton12, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(157, Short.MAX_VALUE))
        );

        screen5Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jButton12, jButton13});

        mainPanel.add(screen5, "screen5");

        newAccountScreen.setPreferredSize(new java.awt.Dimension(882, 800));

        jLabel2.setText("First Name:");

        jLabel3.setText("Last Name:");

        jLabel20.setText("Email Address:");

        jLabel22.setText("Street Address:");

        jLabel23.setText("State:");

        jLabel24.setText("Account Password:");

        jLabel25.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel25.setText("Account Creation Screen");

        firstNameTextBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                firstNameTextBoxActionPerformed(evt);
            }
        });

        cancelCreateAccountButton.setText("Back");
        cancelCreateAccountButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cancelCreateAccountButtonActionPerformed(evt);
            }
        });

        createAccountButton.setText("Create Account");
        createAccountButton.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                createAccountButtonMouseClicked(evt);
            }
        });
        createAccountButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                createAccountButtonActionPerformed(evt);
            }
        });

        jLabel21.setText("City:");

        jLabel40.setText("Country:");

        cityTextBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cityTextBoxActionPerformed(evt);
            }
        });

        jLabel41.setText("Zip code:");

        jLabel42.setText("Phone Number:");

        jLabel8.setForeground(new java.awt.Color(255, 0, 0));
        jLabel8.setText("*");

        jLabel43.setForeground(new java.awt.Color(255, 0, 0));
        jLabel43.setText("*");

        jLabel44.setForeground(new java.awt.Color(255, 0, 0));
        jLabel44.setText("*");

        jLabel45.setForeground(new java.awt.Color(255, 0, 0));
        jLabel45.setText("*");

        jLabel48.setForeground(new java.awt.Color(255, 0, 0));
        jLabel48.setText("*");

        jLabel49.setForeground(new java.awt.Color(255, 0, 0));
        jLabel49.setText("*");

        jLabel50.setForeground(new java.awt.Color(255, 0, 0));
        jLabel50.setText("*");

        jLabel51.setForeground(new java.awt.Color(255, 0, 0));
        jLabel51.setText("*");

        javax.swing.GroupLayout newAccountScreenLayout = new javax.swing.GroupLayout(newAccountScreen);
        newAccountScreen.setLayout(newAccountScreenLayout);
        newAccountScreenLayout.setHorizontalGroup(
            newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(newAccountScreenLayout.createSequentialGroup()
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(newAccountScreenLayout.createSequentialGroup()
                        .addGap(63, 63, 63)
                        .addComponent(jLabel25))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addGroup(newAccountScreenLayout.createSequentialGroup()
                            .addContainerGap()
                            .addComponent(jSeparator3, javax.swing.GroupLayout.DEFAULT_SIZE, 862, Short.MAX_VALUE))
                        .addGroup(newAccountScreenLayout.createSequentialGroup()
                            .addGap(71, 71, 71)
                            .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addComponent(jLabel51, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel50, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel49, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel48, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel45, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel44, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel43, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jLabel2)
                                .addComponent(jLabel20)
                                .addComponent(jLabel42)
                                .addComponent(jLabel24)
                                .addComponent(jLabel22)
                                .addComponent(jLabel21)
                                .addComponent(jLabel23)
                                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jLabel40)
                                    .addComponent(jLabel41))
                                .addComponent(jLabel3))
                            .addGap(38, 38, 38)
                            .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(passwordTextBox, javax.swing.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
                                .addComponent(countryTextBox, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
                                .addComponent(zipCodeTextBox, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
                                .addComponent(stateTextBox, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
                                .addComponent(cityTextBox, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
                                .addComponent(streetAddressTextBox, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
                                .addComponent(phoneTextBox, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
                                .addComponent(emailAddressTextBox, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
                                .addComponent(lastNameTextBox, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
                                .addComponent(firstNameTextBox, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE))
                            .addGap(211, 211, 211)))
                    .addGroup(newAccountScreenLayout.createSequentialGroup()
                        .addGap(269, 269, 269)
                        .addComponent(cancelCreateAccountButton, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(124, 124, 124)
                        .addComponent(createAccountButton)))
                .addContainerGap())
        );
        newAccountScreenLayout.setVerticalGroup(
            newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(newAccountScreenLayout.createSequentialGroup()
                .addGap(38, 38, 38)
                .addComponent(jLabel25)
                .addGap(18, 18, 18)
                .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(44, 44, 44)
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(firstNameTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel8))
                .addGap(28, 28, 28)
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(lastNameTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel43))
                .addGap(30, 30, 30)
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel20)
                    .addComponent(emailAddressTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel44))
                .addGap(33, 33, 33)
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel42)
                    .addComponent(phoneTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel45))
                .addGap(32, 32, 32)
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel24)
                    .addComponent(jLabel48)
                    .addComponent(passwordTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(33, 33, 33)
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel22)
                    .addComponent(streetAddressTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel49))
                .addGap(32, 32, 32)
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel21)
                    .addComponent(cityTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(28, 28, 28)
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel23)
                    .addComponent(stateTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel50))
                .addGap(30, 30, 30)
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel41)
                    .addComponent(zipCodeTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(27, 27, 27)
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel40)
                    .addComponent(countryTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel51))
                .addGap(41, 41, 41)
                .addGroup(newAccountScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(cancelCreateAccountButton)
                    .addComponent(createAccountButton))
                .addContainerGap(124, Short.MAX_VALUE))
        );

        mainPanel.add(newAccountScreen, "newAccountScreen");

        returningFlights.setPreferredSize(new java.awt.Dimension(882, 800));

        jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Price", "Number of Layovers", "Total Time", "Class of Travel" }));
        jComboBox2.setOpaque(false);
        jComboBox2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBox2ActionPerformed(evt);
            }
        });

        jLabel46.setFont(new java.awt.Font("Tahoma", 0, 15));
        jLabel46.setText("Sort By:");

        selectReturnFlightButton.setText("select");
        selectReturnFlightButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                selectReturnFlightButtonActionPerformed(evt);
            }
        });

        returningFlightTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Returning Flights"
            }
        ));
        returningFlightTable.setRowHeight(75);
        returningFlightTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                returningFlightTableMouseClicked(evt);
            }
        });
        jScrollPane4.setViewportView(returningFlightTable);

        returningFlightBackButton.setText("Back");
        returningFlightBackButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                returningFlightBackButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout returningFlightsLayout = new javax.swing.GroupLayout(returningFlights);
        returningFlights.setLayout(returningFlightsLayout);
        returningFlightsLayout.setHorizontalGroup(
            returningFlightsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(returningFlightsLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(returningFlightsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(returningFlightsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(returningFlightsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(returningFlightsLayout.createSequentialGroup()
                                .addComponent(jSeparator4, javax.swing.GroupLayout.DEFAULT_SIZE, 862, Short.MAX_VALUE)
                                .addContainerGap())
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, returningFlightsLayout.createSequentialGroup()
                                .addComponent(returningFlightBackButton, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(54, 54, 54)
                                .addComponent(selectReturnFlightButton, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(152, 152, 152)))
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, returningFlightsLayout.createSequentialGroup()
                            .addComponent(jLabel46)
                            .addGap(32, 32, 32)
                            .addComponent(jComboBox2, javax.swing.GroupLayout.PREFERRED_SIZE, 481, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(181, 181, 181)))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, returningFlightsLayout.createSequentialGroup()
                        .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 638, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(140, 140, 140))))
        );
        returningFlightsLayout.setVerticalGroup(
            returningFlightsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(returningFlightsLayout.createSequentialGroup()
                .addGap(23, 23, 23)
                .addGroup(returningFlightsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel46)
                    .addComponent(jComboBox2, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(29, 29, 29)
                .addComponent(jSeparator4, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 494, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(50, 50, 50)
                .addGroup(returningFlightsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(returningFlightBackButton)
                    .addComponent(selectReturnFlightButton))
                .addContainerGap(114, Short.MAX_VALUE))
        );

        mainPanel.add(returningFlights, "chooseReturnFlightScreen");

        jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jLabel36.setFont(new java.awt.Font("Tahoma", 1, 12));
        jLabel36.setText("LOG INTO YOUR ACCOUNT");

        jLabel37.setText("Email Address:");

        jLabel38.setText("Password:");

        jButton1.setText("Login");
        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton1MouseClicked(evt);
            }
        });
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jLabel39.setFont(new java.awt.Font("Tahoma", 1, 12));
        jLabel39.setForeground(new java.awt.Color(0, 102, 255));
        jLabel39.setText("<html> <u>OR CLICK HERE TO SIGN UP FOR A NEW ACCOUNT</u>");
        jLabel39.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabel39MouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel36)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel38)
                            .addComponent(jLabel37))
                        .addGap(39, 39, 39)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(loginPasswordTextBox)
                            .addComponent(loginUserNameTextBox, javax.swing.GroupLayout.DEFAULT_SIZE, 264, Short.MAX_VALUE)
                            .addComponent(jButton1, javax.swing.GroupLayout.Alignment.TRAILING)))
                    .addComponent(jLabel39, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 386, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel36)
                .addGap(15, 15, 15)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(loginUserNameTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel37))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel38)
                    .addComponent(loginPasswordTextBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jButton1)
                .addGap(32, 32, 32)
                .addComponent(jLabel39, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        jLabel28.setFont(new java.awt.Font("Tahoma", 0, 24));
        jLabel28.setText("Account Login");

        javax.swing.GroupLayout loginScreenLayout = new javax.swing.GroupLayout(loginScreen);
        loginScreen.setLayout(loginScreenLayout);
        loginScreenLayout.setHorizontalGroup(
            loginScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(loginScreenLayout.createSequentialGroup()
                .addGroup(loginScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(loginScreenLayout.createSequentialGroup()
                        .addGap(369, 369, 369)
                        .addComponent(jLabel28))
                    .addGroup(loginScreenLayout.createSequentialGroup()
                        .addGap(239, 239, 239)
                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(235, Short.MAX_VALUE))
        );
        loginScreenLayout.setVerticalGroup(
            loginScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(loginScreenLayout.createSequentialGroup()
                .addGap(84, 84, 84)
                .addComponent(jLabel28)
                .addGap(74, 74, 74)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(427, Short.MAX_VALUE))
        );

        mainPanel.add(loginScreen, "loginScreen");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(mainPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 882, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(mainPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void screenTransition(String name) {
        CardLayout card = (CardLayout) mainPanel.getLayout();
        card.show(mainPanel, name);
    }

    private void searchButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_searchButtonActionPerformed
        Pattern date= Pattern.compile("((19|20)\\d\\d)[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])");
        Matcher d = date.matcher(departureDateTextBox.getText());
        Pattern p = Pattern.compile("[1-6]");
        Matcher m = p.matcher(noOfPassengersTextBox.getText());
        Matcher r =date.matcher(returnDateTextBox.getText());
        boolean matchFound = m.matches();
        boolean matchDate = d.matches();
        boolean matchRdate= r.matches();

        if(!matchDate)
        {
            JOptionPane.showMessageDialog(null, "Please enter a valid departure date");
        }
        else if(!matchFound)
        {
            JOptionPane.showMessageDialog(null, "Please enter a valid number of passengers");
        }
        else if (roundTripRadioButton.isSelected())
        {
            if(!matchRdate)
            {
                JOptionPane.showMessageDialog(null, "Please enter a valid return date");
            }
            else
            {
                GetFlightInfo info = new GetFlightInfo(departingAirportTextBox.getText(),arrivalAirportTextBox.getText(),departureDateTextBox.getText(),returnDateTextBox.getText(), noOfPassengersTextBox.getText(), departingFlightTable);
                
                selectDepartingFlightButton.setEnabled(false);
                
               screenTransition("screen2");
            }
        }
        else
        {
            GetFlightInfo info= new GetFlightInfo(departingAirportTextBox.getText(),arrivalAirportTextBox.getText(),departureDateTextBox.getText(),returnDateTextBox.getText(), noOfPassengersTextBox.getText(), departingFlightTable);
            screenTransition("screen2");
            selectDepartingFlightButton.setEnabled(false);
        }
    }//GEN-LAST:event_searchButtonActionPerformed

    private void selectDepartingFlightButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectDepartingFlightButtonActionPerformed
       // System.out.println("current row selected is: " + .);
        flightInfo = departingFlightTable.getValueAt(departingFlightTable.getSelectedRow(), 0).toString();
        flightReviewBox.setText(flightInfo);
        if(oneWayRadioButton.isSelected() == true) {
            screenTransition("screen3");
        } else {
            GetFlightInfo info =  new GetFlightInfo(arrivalAirportTextBox.getText(),departingAirportTextBox.getText(), returnDateTextBox.getText(), returnDateTextBox.getText(), noOfPassengersTextBox.getText(), returningFlightTable);
            selectReturnFlightButton.setEnabled(false);
            screenTransition("chooseReturnFlightScreen");
        }
    }//GEN-LAST:event_selectDepartingFlightButtonActionPerformed

    private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton9ActionPerformed
        // TODO add your handling code here:
        screenTransition("loginScreen");
    }//GEN-LAST:event_jButton9ActionPerformed

    private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton8ActionPerformed
        // TODO add your handling code here:
        if(roundTripRadioButton.isSelected()){
            selectReturnFlightButton.setEnabled(false);
            screenTransition("chooseReturnFlightScreen");
        } else {
            selectDepartingFlightButton.setEnabled(false);
            screenTransition("screen2");
        }

    }//GEN-LAST:event_jButton8ActionPerformed

    private void jButton13ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton13ActionPerformed
        // TODO add your handling code here:
        screenTransition("screen4");
    }//GEN-LAST:event_jButton13ActionPerformed

    private void paymentInfoContinueButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_paymentInfoContinueButtonActionPerformed
       
        if(paymentTypeComboBox.getSelectedIndex() == 1){
            if(firstnameTextBox.getText().equals("") || LastNameTextBox.getText().equals("") || CardNumberTextBox.getText().equals("") ||expirationDateTextBox.getText().equals("") ||securityCodeTextBox.getText().equals("") || cardTypeTextBox.getText().equals(""))
            {
            JOptionPane.showMessageDialog(null, "Please enter all the required information \n",
					  "Missing Information", JOptionPane.ERROR_MESSAGE);

        }
            else
            {
        personalInfoReviewBox.setText("Credit Card Number: " + CardNumberTextBox.getText() + "\nExpiration Date: " + expirationDateTextBox.getText() + "\nSecurity Code: " + securityCodeTextBox.getText());
       screenTransition("screen5");
        }
        }
        else if (paymentTypeComboBox.getSelectedIndex() == 2){
            if(firstnameTextBox.getText().equals("") || LastNameTextBox.getText().equals("") || routingNumberTextBox.getText().equals("") ||bankAccountTextBox.getText().equals(""))
            {
                JOptionPane.showMessageDialog(null, "Please enter all the required information \n",
					  "Missing Information", JOptionPane.ERROR_MESSAGE);
        }
        else
        {
            
      personalInfoReviewBox.setText("Bank Account Number: " + bankAccountTextBox.getText() + "  Routing Number: " + routingNumberTextBox.getText());
       screenTransition("screen5");
        }
        } else if (paymentTypeComboBox.getSelectedIndex() == 3){
            if(firstnameTextBox.getText().equals("") || LastNameTextBox.getText().equals("") || payPalPasswordTextBox.getText().equals("") ||payPalAccountTextBox.getText().equals(""))
            {
                JOptionPane.showMessageDialog(null, "Please enter all the required information \n",
					  "Missing Information", JOptionPane.ERROR_MESSAGE);
            }
            else
            {
            personalInfoReviewBox.setText("PayPal Account Name: " + payPalAccountTextBox.getText());
            screenTransition("screen5");
        }
        }
    }//GEN-LAST:event_paymentInfoContinueButtonActionPerformed

    private void airportLookupButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_airportLookupButton1ActionPerformed
        airportLookUpWindow = new AirportLookUpWindow();
        airportLookUpWindow.setVisible(true);
        airportLookUpWindow.addWindowListener(new WindowListener() {

            public void windowOpened(WindowEvent e) {
            }
            public void windowClosing(WindowEvent e) {
            }
            public void windowClosed(WindowEvent e) {
            }
            public void windowIconified(WindowEvent e) {
            }
            public void windowDeiconified(WindowEvent e) {
            }
            public void windowActivated(WindowEvent e) {
            }
            public void windowDeactivated(WindowEvent e) {
                departingAirportTextBox.setText(airportLookUpWindow.getAirportName());
            }
        });
    }//GEN-LAST:event_airportLookupButton1ActionPerformed

    private void airportLookupButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_airportLookupButton2ActionPerformed
        airportLookUpWindow = new AirportLookUpWindow();
        airportLookUpWindow.setVisible(true);
        airportLookUpWindow.addWindowListener(new WindowListener() {

            public void windowOpened(WindowEvent e) {
            }
            public void windowClosing(WindowEvent e) {
            }
            public void windowClosed(WindowEvent e) {
            }
            public void windowIconified(WindowEvent e) {
            }
            public void windowDeiconified(WindowEvent e) {
            }
            public void windowActivated(WindowEvent e) {
            }
            public void windowDeactivated(WindowEvent e) {
                arrivalAirportTextBox.setText(airportLookUpWindow.getAirportName());
            }
        });
    }//GEN-LAST:event_airportLookupButton2ActionPerformed

    private void oneWayRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_oneWayRadioButtonActionPerformed
        returnDateTextBox.setEnabled(false);
        calendarLookupButton2.setEnabled(false);
        roundTripRadioButton.setSelected(false);
    }//GEN-LAST:event_oneWayRadioButtonActionPerformed

    private void roundTripRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_roundTripRadioButtonActionPerformed
        returnDateTextBox.setEnabled(true);
        calendarLookupButton2.setEnabled(true);
        oneWayRadioButton.setSelected(false);
    }//GEN-LAST:event_roundTripRadioButtonActionPerformed

    private void departingAirportTextBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_departingAirportTextBoxActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_departingAirportTextBoxActionPerformed

    private void firstNameTextBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_firstNameTextBoxActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_firstNameTextBoxActionPerformed

    private void createAccountButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createAccountButtonActionPerformed

        // error checking- make sure all required fields are entered
        if (firstNameTextBox.getText().equals("") || lastNameTextBox.getText().equals("") || streetAddressTextBox.getText().equals("") ||
            stateTextBox.getText().equals("") || countryTextBox.getText().equals("") || phoneTextBox.getText().equals("") ||
            emailAddressTextBox.getText().equals("") || passwordTextBox.getText().equals(""))
        {
            JOptionPane.showMessageDialog(null, "Please enter all the required information (marked with an *) before trying to create an account. \n",
					  "Missing Information", JOptionPane.ERROR_MESSAGE);
        }

                
        else
        {
            Pattern Fname = Pattern.compile("[a-zA-Z]+");
            Matcher m = Fname.matcher(firstNameTextBox.getText());
            System.out.println(firstNameTextBox.getText());
            Pattern Lname = Pattern.compile("[a-zA-Z]+");
            Matcher lname = Lname.matcher(lastNameTextBox.getText());
            Pattern email = Pattern.compile(".+@.+\\.[a-z]+");
            Matcher matchemail = email.matcher(emailAddressTextBox.getText());
            Pattern Phone = Pattern.compile("((\\(\\d{3}\\) ?)|(\\d{3}-))?\\d{3}-\\d{4}");
            Matcher phone = Phone.matcher(phoneTextBox.getText());
//            Pattern Zip= Pattern.compile("\\d{5}(-\\d{4})?");
//            Matcher zip= Zip.matcher(zipCodeTextBox.getText());

            boolean matchFound = m.matches();
            boolean matchLname= lname.matches();
            boolean matchEmail= matchemail.matches();
            boolean matchPhone=phone.matches();


            if (!matchEmail)
            {
                JOptionPane.showMessageDialog(null, "Please enter a valid email address-password combination before trying to log in. \n",
								"Invalid Input", JOptionPane.ERROR_MESSAGE);
            } else if(!matchFound) {

                JOptionPane.showMessageDialog(null, "Please enter a valid first name before trying to log in. \n",
								"Invalid Input", JOptionPane.ERROR_MESSAGE);
           }else if(!matchLname){

                JOptionPane.showMessageDialog(null, "Please enter a valid last name before trying to log in. \n",
								"Invalid Input", JOptionPane.ERROR_MESSAGE);
           }else if(!matchPhone){

                JOptionPane.showMessageDialog(null, "Please enter a valid phone number before trying to log in. \n",
								"Invalid Input", JOptionPane.ERROR_MESSAGE);
           } else {
                UserProfile user = new UserProfile(firstNameTextBox.getText(), lastNameTextBox.getText(),
                                           streetAddressTextBox.getText(), cityTextBox.getText(), stateTextBox.getText(),
                                           zipCodeTextBox.getText(), countryTextBox.getText(), phoneTextBox.getText(),
                                           emailAddressTextBox.getText(), passwordTextBox.getText());

                JOptionPane.showMessageDialog(null, "Your account has been successfully created. \n",
                                                     "Account Creation Successful", JOptionPane.INFORMATION_MESSAGE);

                screenTransition("screen4");
            }
        }
    }//GEN-LAST:event_createAccountButtonActionPerformed

    private void jButton12ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton12ActionPerformed
if(routingNumberTextBox.getText().equals("") || bankAccountTextBox.getText().equals(""))
        {

        PaymentInformation pay = new PaymentInformation(firstnameTextBox.getText(),LastNameTextBox.getText(),cardTypeTextBox.getText(),CardNumberTextBox.getText(), expirationDateTextBox.getText(),securityCodeTextBox.getText());
       //System.out.println("firstnameTextBox.getText(),LastNameTextBox.getText(),CardNumberTextBox.getText(),payPalAccountTextBox.getText(),cardTypeTextBox.getText(), expirationDateTextBox.getText(),securityCodeTextBox.getText(),routingNumberTextBox.getText(),bankAccountTextBox.getText(),payPalPasswordTextBox.getText()");
        
        }

if (paymentTypeComboBox.getSelectedIndex()==3)
{
PaypalInfo pay1 = new PaypalInfo(firstnameTextBox.getText(),LastNameTextBox.getText(),payPalAccountTextBox.getText(),payPalPasswordTextBox.getText());
}
if (paymentTypeComboBox.getSelectedIndex()==2)
{
BankInformation pay2 = new BankInformation(firstnameTextBox.getText(),LastNameTextBox.getText(),routingNumberTextBox.getText(),bankAccountTextBox.getText());
}
JOptionPane.showMessageDialog(null, "Your Flight Has Been Booked successfully\n",
                                                    "Flight Booked", JOptionPane.INFORMATION_MESSAGE);

Object[] options = {"Go back to main screen",
                    "Quit application"};

int n = JOptionPane.showOptionDialog(null, "What would you like to do next?\n", "Next Choice", JOptionPane.YES_NO_CANCEL_OPTION,
        JOptionPane.QUESTION_MESSAGE, null, options, options[0]);

if (n == JOptionPane.YES_OPTION)
    screenTransition("screen1");
else if (n == JOptionPane.NO_OPTION)
    System.exit(-1);
 
    }//GEN-LAST:event_jButton12ActionPerformed

    private void noOfPassengersTextBoxKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_noOfPassengersTextBoxKeyReleased
        // TODO add your handling code here:
    }//GEN-LAST:event_noOfPassengersTextBoxKeyReleased

    private void clearButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearButtonActionPerformed
        departingAirportTextBox.setText("");
        arrivalAirportTextBox.setText("");
        noOfPassengersTextBox.setText("");
        departureDateTextBox.setText("yyyy-mm-dd");
        returnDateTextBox.setText("yyyy-mm-dd");
        searchButton.setEnabled(false);
    }//GEN-LAST:event_clearButtonActionPerformed

    private void jLabel39MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel39MouseClicked
        screenTransition("newAccountScreen");
    }//GEN-LAST:event_jLabel39MouseClicked

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseClicked
    }//GEN-LAST:event_jButton1MouseClicked

    private void cityTextBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cityTextBoxActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_cityTextBoxActionPerformed

    private void createAccountButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_createAccountButtonMouseClicked
  
    }//GEN-LAST:event_createAccountButtonMouseClicked

    private void searchButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_searchButtonMouseClicked
        // TODO add your handling code here:
        

   
    }//GEN-LAST:event_searchButtonMouseClicked

    private void selectReturnFlightButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectReturnFlightButtonActionPerformed
        flightReviewBox.append("\n\n" + returningFlightTable.getValueAt(returningFlightTable.getSelectedRow(), 0).toString());
        screenTransition("screen3");
    }//GEN-LAST:event_selectReturnFlightButtonActionPerformed

    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jComboBox1ActionPerformed

    private void departingFlightTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_departingFlightTableMouseClicked
        selectDepartingFlightButton.setEnabled(true);
    }//GEN-LAST:event_departingFlightTableMouseClicked

    private void departingFlightBackButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_departingFlightBackButtonActionPerformed
        screenTransition("screen1");
    }//GEN-LAST:event_departingFlightBackButtonActionPerformed

    private void returningFlightBackButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_returningFlightBackButtonActionPerformed
        screenTransition("screen2");
    }//GEN-LAST:event_returningFlightBackButtonActionPerformed

    private void securityCodeTextBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_securityCodeTextBoxActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_securityCodeTextBoxActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        if (loginUserNameTextBox.getText().equals("") || loginPasswordTextBox.getText().equals(""))
            JOptionPane.showMessageDialog(null, "Please enter a valid email address-password combination before trying to log in. \n",
								"Invalid Input", JOptionPane.ERROR_MESSAGE);
      else {
      Pattern p = Pattern.compile(".+@.+\\.[a-z]+");
      Matcher m = p.matcher(loginUserNameTextBox.getText());
       boolean matchFound = m.matches();
         if (!matchFound)
{
    JOptionPane.showMessageDialog(null, "Please enter a valid email address-password combination before trying to log in. \n",
								"Invalid Input", JOptionPane.ERROR_MESSAGE);
}

        else
        {
            // add database access code here to crosscheck username and password
            ConnectToDatabase connect = new ConnectToDatabase();
            if (connect.checkLoginInfo(loginUserNameTextBox.getText(), loginPasswordTextBox.getText()) == true)
                screenTransition("screen4");
        }
      }
    }//GEN-LAST:event_jButton1ActionPerformed

    private void returningFlightTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_returningFlightTableMouseClicked
        selectReturnFlightButton.setEnabled(true);
    }//GEN-LAST:event_returningFlightTableMouseClicked

    private void jComboBox2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox2ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jComboBox2ActionPerformed

    private void cancelCreateAccountButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelCreateAccountButtonActionPerformed
        screenTransition("loginScreen");
    }//GEN-LAST:event_cancelCreateAccountButtonActionPerformed

    private void calendarLookupButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_calendarLookupButton1ActionPerformed
        final CalendarProgram calendar = new CalendarProgram();
        calendar.initCalendar();
        calendar.frmMain.addWindowListener(new WindowListener() {

            public void windowOpened(WindowEvent e) {
            }
            public void windowClosing(WindowEvent e) {
            }
            public void windowClosed(WindowEvent e) {
            }
            public void windowIconified(WindowEvent e) {
            }
            public void windowDeiconified(WindowEvent e) {
            }
            public void windowActivated(WindowEvent e) {
            }
            public void windowDeactivated(WindowEvent e) {
            departureDateTextBox.setText(calendar.date);
            }
        });
    }//GEN-LAST:event_calendarLookupButton1ActionPerformed

    private void calendarLookupButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_calendarLookupButton2ActionPerformed
        final CalendarProgram calendar = new CalendarProgram();
        calendar.initCalendar();
        calendar.frmMain.addWindowListener(new WindowListener() {

            public void windowOpened(WindowEvent e) {
            }
            public void windowClosing(WindowEvent e) {
            }
            public void windowClosed(WindowEvent e) {
            }
            public void windowIconified(WindowEvent e) {
            }
            public void windowDeiconified(WindowEvent e) {
            }
            public void windowActivated(WindowEvent e) {
            }
            public void windowDeactivated(WindowEvent e) {
                returnDateTextBox.setText(calendar.date);
            }
        });
    }//GEN-LAST:event_calendarLookupButton2ActionPerformed

    private void LastNameTextBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_LastNameTextBoxActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_LastNameTextBoxActionPerformed

    private void CardNumberTextBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CardNumberTextBoxActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_CardNumberTextBoxActionPerformed

    private void cardTypeTextBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cardTypeTextBoxActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_cardTypeTextBoxActionPerformed

    private void firstnameTextBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_firstnameTextBoxActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_firstnameTextBoxActionPerformed

    private void payPalAccountTextBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_payPalAccountTextBoxActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_payPalAccountTextBoxActionPerformed

    private void paymentTypeComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_paymentTypeComboBoxActionPerformed
        // TODO add your handling code here:



        
     
    }//GEN-LAST:event_paymentTypeComboBoxActionPerformed

private void paymentTypeComboBoxMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_paymentTypeComboBoxMouseClicked

 

}//GEN-LAST:event_paymentTypeComboBoxMouseClicked

private void paymentTypeComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_paymentTypeComboBoxItemStateChanged
    // TODO add your handling code here:
if (paymentTypeComboBox.getSelectedIndex()==1)
{
firstnameTextBox.setVisible(true);
LastNameTextBox.setVisible(true);
cardTypeTextBox.setVisible(true);
CardNumberTextBox.setVisible(true);
CardNumberTextBox.setVisible(true);
securityCodeTextBox.setVisible(true);
routingNumberTextBox.setVisible(false);
bankAccountTextBox.setVisible(false);
payPalAccountTextBox.setVisible(false);
payPalPasswordTextBox.setVisible(false);
}
if (paymentTypeComboBox.getSelectedIndex()==2)
{
firstnameTextBox.setVisible(true);
LastNameTextBox.setVisible(true);
cardTypeTextBox.setVisible(false);
CardNumberTextBox.setVisible(false);
CardNumberTextBox.setVisible(false);
securityCodeTextBox.setVisible(false);
expirationDateTextBox.setVisible(false);
routingNumberTextBox.setVisible(true);
bankAccountTextBox.setVisible(true);
payPalAccountTextBox.setVisible(false);
payPalPasswordTextBox.setVisible(false);

}
if (paymentTypeComboBox.getSelectedIndex()==3)
{
LastNameTextBox.setVisible(true);
cardTypeTextBox.setVisible(false);
CardNumberTextBox.setVisible(false);
CardNumberTextBox.setVisible(false);
securityCodeTextBox.setVisible(false);
routingNumberTextBox.setVisible(false);
bankAccountTextBox.setVisible(false);
payPalAccountTextBox.setVisible(true);
payPalPasswordTextBox.setVisible(true);

}

 
}//GEN-LAST:event_paymentTypeComboBoxItemStateChanged

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                setNativeLookAndFeel();
                new MainGUI().setVisible(true);
            }

            private void setNativeLookAndFeel() {
                String nativeLF = UIManager.getSystemLookAndFeelClassName();
                try {
                    UIManager.setLookAndFeel(nativeLF);
                } catch (ClassNotFoundException ex) {
                    Logger.getLogger(MainGUI.class.getName()).log(Level.SEVERE, null, ex);
                } catch (InstantiationException ex) {
                    Logger.getLogger(MainGUI.class.getName()).log(Level.SEVERE, null, ex);
                } catch (IllegalAccessException ex) {
                    Logger.getLogger(MainGUI.class.getName()).log(Level.SEVERE, null, ex);
                } catch (UnsupportedLookAndFeelException ex) {
                    Logger.getLogger(MainGUI.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
    }

    
    private AirportLookUpWindow airportLookUpWindow;
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JTextField CardNumberTextBox;
    private javax.swing.JTextField LastNameTextBox;
    private javax.swing.JButton airportLookupButton1;
    private javax.swing.JButton airportLookupButton2;
    private javax.swing.JTextField arrivalAirportTextBox;
    private javax.swing.JTextField bankAccountTextBox;
    private javax.swing.JButton calendarLookupButton1;
    private javax.swing.JButton calendarLookupButton2;
    private javax.swing.JButton cancelCreateAccountButton;
    private javax.swing.JTextField cardTypeTextBox;
    private javax.swing.JTextField cityTextBox;
    private javax.swing.JButton clearButton;
    private javax.swing.JTextField countryTextBox;
    private javax.swing.JButton createAccountButton;
    private javax.swing.JTextField departingAirportTextBox;
    private javax.swing.JButton departingFlightBackButton;
    private javax.swing.JTable departingFlightTable;
    private javax.swing.JTextField departureDateTextBox;
    private javax.swing.JTextField emailAddressTextBox;
    private javax.swing.JTextField expirationDateTextBox;
    private javax.swing.JTextField firstNameTextBox;
    private javax.swing.JTextField firstnameTextBox;
    private javax.swing.JPanel flightInformationPanel;
    private javax.swing.JTextArea flightReviewBox;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton11;
    private javax.swing.JButton jButton12;
    private javax.swing.JButton jButton13;
    private javax.swing.JButton jButton8;
    private javax.swing.JButton jButton9;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JComboBox jComboBox2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel31;
    private javax.swing.JLabel jLabel32;
    private javax.swing.JLabel jLabel33;
    private javax.swing.JLabel jLabel36;
    private javax.swing.JLabel jLabel37;
    private javax.swing.JLabel jLabel38;
    private javax.swing.JLabel jLabel39;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel40;
    private javax.swing.JLabel jLabel41;
    private javax.swing.JLabel jLabel42;
    private javax.swing.JLabel jLabel43;
    private javax.swing.JLabel jLabel44;
    private javax.swing.JLabel jLabel45;
    private javax.swing.JLabel jLabel46;
    private javax.swing.JLabel jLabel48;
    private javax.swing.JLabel jLabel49;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel50;
    private javax.swing.JLabel jLabel51;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JSeparator jSeparator2;
    private javax.swing.JSeparator jSeparator3;
    private javax.swing.JSeparator jSeparator4;
    private javax.swing.JTextField lastNameTextBox;
    private javax.swing.JPasswordField loginPasswordTextBox;
    private javax.swing.JPanel loginScreen;
    private javax.swing.JTextField loginUserNameTextBox;
    private javax.swing.JPanel mainPanel;
    private javax.swing.JPanel newAccountScreen;
    private javax.swing.JTextField noOfPassengersTextBox;
    private javax.swing.JLabel numberOfPassengersTextBox;
    private javax.swing.JRadioButton oneWayRadioButton;
    private javax.swing.JPasswordField passwordTextBox;
    private javax.swing.JTextField payPalAccountTextBox;
    private javax.swing.JTextField payPalPasswordTextBox;
    private javax.swing.JButton paymentInfoContinueButton;
    public javax.swing.JComboBox paymentTypeComboBox;
    private javax.swing.JTextArea personalInfoReviewBox;
    private javax.swing.JTextField phoneTextBox;
    private javax.swing.JTextField returnDateTextBox;
    private javax.swing.JButton returningFlightBackButton;
    private javax.swing.JTable returningFlightTable;
    private javax.swing.JPanel returningFlights;
    private javax.swing.JRadioButton roundTripRadioButton;
    private javax.swing.JTextField routingNumberTextBox;
    private javax.swing.JPanel screen1;
    private javax.swing.JTabbedPane screen1Tab;
    private javax.swing.JPanel screen2;
    private javax.swing.JPanel screen3;
    private javax.swing.JPanel screen4;
    private javax.swing.JPanel screen5;
    private javax.swing.JButton searchButton;
    private javax.swing.JTextField securityCodeTextBox;
    private javax.swing.JButton selectDepartingFlightButton;
    private javax.swing.JButton selectReturnFlightButton;
    private javax.swing.JTextField stateTextBox;
    private javax.swing.JTextField streetAddressTextBox;
    private javax.swing.JTextField zipCodeTextBox;
    // End of variables declaration//GEN-END:variables
}
